<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>函数的封装</title>
</head>
<body>
<div></div>
<p></p>
<span></span>
<div></div>
<p></p>
<span></span>
<script>
    //计算下面的题目
    //1.求[]的最大值，最小值，和，乘机，平均值
    //要求分别使用循环完成
    var arr = [1,3,5,2,8,7,6,9];

    //求和
  /*  function sum(num){
        var total;
        for(var i=0;i<num.length;i++){
            total += num[i];
        }
        return total;
    }
    //求最大值
    function maxNum(num){
        var maxNum = num[0];
        for(var i =0; i<num.length;i++){
            if(maxNum<num[i]){
               maxNum  = num[i];
            }
        }
    }*/

    //1..求最大值
    /*var max = arr[0];
    for(var i=0;i<arr.length;i++){
        if(max<arr[i]){
            max = arr[i];
        }
    }
    console.log(max);
    //2.求最小值
    var min = arr[0];
    for(var i=0;i<arr.length;i++){
        if(min>arr[i]){
            min = arr[i];
        }
    }
    console.log(min);
    //3.求和
    var sum = 0;
    for(var i=0;i<arr.length;i++){
        sum += arr[i];
    }
    console.log(sum);
    //4.乘积
    var cross = 1;
    for(var i=0;i<arr.length;i++){
        cross*=arr[i];
    }
    console.log(cross);

    //5.求平均值
    var average = 0;
    average = sum/arr.length;
    console.log(average);*/

//    接下来该求同存异封装for循环方法
    function each(arr,callback){
        for(var i=0;i<arr.length;i++){
            callback(arr[i],i);
        }
    }
    var max = arr[0];
    each(arr,function(v,i){
        if(max<v){
            max = v;
        }
    });
    console.log(max);
    // 怎么封装？？？
    //1.最大值
//    var max = arr[0];

    //这么写有一些问题
    //1.应该在字符串中写什么变量，那些变量可以用，那些不能用？不清楚
    //2.如果方法体很长，这样写无法维护
    //需要重新考虑封装

   /* function each(arr,callback){
        for(var i=1;i<arr.length;i++){
            callback(arr[i],i);
        }
    };
    var arr = [1,3,4,5,6,7,3];
    //求最大值
    var max = arr[0];
    each(arr,function(v,i){
        if(max<v){
            max = v;
        }
    })
    console.log(max);*/
</script>
</body>
</html>